Information processing system having image forming apparatus capable of controlling print data obtainment timing, control method therefor, and storage medium

ABSTRACT

An information processing system that is capable of efficiently obtaining print data to perform printing without obtaining unnecessary print data from a server on a network with useless timing and continuously spooling it. The server generates attribute information including positional information on individual pages of print data. An image forming apparatus obtains the attribute information from the server. The image forming apparatus determines the number of network sessions based on a time period it took to obtain the attribute information, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed. The image forming apparatus obtains the data on the page to be printed using network sessions corresponding in number to the determined number of network sessions.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing system, a control method therefor, and a storage medium, and in particular to a method of obtaining print data for an image forming apparatus that obtains print data from a server on a network in an information processing system.

2. Description of the Related Art

Some services offered by image forming apparatuses placed in a network environment obtain PDL (page description language) data stored in a server and analyze the PDL data to perform printing. For example, there is a service that constructs a server in a cloud environment, and when a personal computer (PC) on a local network transfers document or image data to the server, causes the server to convert the data into PDL data and store the PDL data in its storage. Also, there is a service that performs conversion into PDL data on PC side, not on a server side, and after that, transfers the PDL data obtained as a result of the conversion to the server and stores the same in a storage of the server.

In a system that obtains and analyzes PDL data stored in a storage of a server and performs printing, there may be cases where it takes a long time for an image forming apparatus to obtain PDL data from the server, depending on an environment where the server is installed and the data size of PDL data stored in the storage. As a measure to reduce the time required for obtainment, there is an obtainment method using multiple sessions.

According to the obtainment method using multiple sessions, for example, a set of PDL data is obtained in parallel using a plurality of network sessions. For the set of PDL data, each of the network sessions obtains data in such a range as not to overlap ranges for the other sessions and from different offset positions. By an image forming apparatus combining data obtained by the individual network sessions together, the time elapsing before obtainment of all data is completed can be reduced.

The farther away a server is from an image forming apparatus (the longer the time from request to response is), the more effective the method. When data is to be obtained in one session, an image forming apparatus has to wait for response when response from a server is late, and hence a needless waiting time is spent. By obtaining data using a plurality of sessions in this waiting time, the speed at which all data is completely obtained increases.

However, an image forming apparatus obtaining data using a plurality of sessions in a waiting time also leads to an increase in the load on a CPU of the image forming apparatus. In order for an image forming apparatus to efficiently perform printing, it is required that all data on a page to be printed next reach the image forming apparatus from a server, and the amount of resources in a CPU or the like required to perform printing is sufficiently large.

When an image forming apparatus obtains data unrelated to a page to be printed next from a server, the data is usually spooled in a memory, a storage, or the like on a temporary basis. By spooling the data, printing of a page next to a page being currently printed can be smoothly performed. However, spooling data on the subsequent pages will merely increase the amount of data waiting to be printed. The time and resources used to obtain the data waiting to be printed are preferably assigned to printing being currently performed.

In general, data can be obtained by limiting pages desired to be printed using a method in which pages of print data are divided into individual data and obtained separately. By separately obtaining data on individual pages, it is possible to avoid obtainment of unnecessary data (see, for example, Japanese Laid-Open Patent Publication (Kokai) No. 2004-287625).

However, when multiple sessions are used, an offset position in PDL data at which data that relates to a page to be printed next lies is unknown from an image forming apparatus side. Moreover, in multiple sessions, the size of data obtained at a time by one session is generally fixed for all the sessions (for example, each of five sessions obtains 1 Mbyte at a time). For this reason, PDL data can be obtained at high speed using multiple sessions, but on the other hand, data unrelated to a page to be printed next is obtained at high speed, and needless data for the present printing process is spooled.

Further, since data unrelated to a page to be printed next is obtained at high speed, the load on a CPU increases, and the CPU cannot assign its processing time to the present printing process. Moreover, according to the method in which pages of PDL data are divided into individual data and obtained separately, a print data is divided into page units, and hence PDL data that is originally one set is treated as a plurality of PDL data, and for example, printing histories are left as different pieces of information, making data management and history management complicated. As a result, a means for an image forming apparatus to efficiently perform printing and obtain PDL data is needed.

SUMMARY OF THE INVENTION

The present invention provides an information processing system that is capable of efficiently obtaining print data to perform printing without obtaining unnecessary print data from a server on a network with useless timing and continuously spooling it, as well as a storage medium.

Accordingly, a first aspect of the present invention provides an information processing system comprising a server configured to store print data, and an image forming apparatus configured to obtain the print data in parallel using a plurality of network sessions for the server, wherein the server comprises an attribute information generation unit configured to generate attribute information including positional information on individual pages of the print data, and wherein the image forming apparatus comprises an attribute information obtaining unit configured to obtain the attribute information from the server, a determination unit configured to determine the number of network sessions based on a time period it took for the attribute information obtaining unit to obtain the attribute information, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed, and a data obtaining unit configured to obtain the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined by the determination unit.

Accordingly, a second aspect of the present invention provides a control method for an information processing system having a server that stores print data, and an image forming apparatus that obtains the print data in parallel using a plurality of network sessions for the server, comprising an attribute information generation step in which the server generates attribute information including positional information on individual pages of the print data, an attribute information obtaining step in which the image forming apparatus obtains the attribute information from the server, a determination step in which the image forming apparatus determines the number of network sessions based on a time period it took to obtain the attribute information in the attribute information obtaining step, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed, and a data obtaining unit step in which the image forming apparatus obtains the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined in the determination step.

Accordingly, a third aspect of the present invention provides a non-transitory computer-readable storage medium storing a program for causing a computer to execute a control method for an information processing system having a server that stores print data, and an image forming apparatus that obtains the print data in parallel using a plurality of network sessions for the server, the control method comprising, an attribute information generation step in which the server generates attribute information including positional information on individual pages of the print data, an attribute information obtaining step in which the image forming apparatus obtains the attribute information from the server, a determination step in which the image forming apparatus determines the number of network sessions based on a time period it took to obtain the attribute information in the attribute information obtaining step, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed, and a data obtaining unit step in which the image forming apparatus obtains the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined in the determination step.

According to the present invention, data on a page to be printed is obtained using network session corresponding in number to the number of network sessions determined based on the time it took to obtain attribute information on print data, the size of data on the page to be printed, and the time required for restoration. This makes it possible to efficiently obtain print data and perform printing without obtaining unnecessary print data from a server on a network with useless timing and continuously spooling it.

Further features of the present invention will become apparent from the following description of exemplary embodiments (with reference to the attached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing an exemplary information processing system according to an embodiment of the present invention.

FIG. 2 is a block diagram schematically showing a hardware arrangement of an image forming apparatus in FIG. 1.

FIG. 3 is a block diagram schematically showing a software arrangement of the image forming apparatus.

FIG. 4 is a block diagram schematically showing a software arrangement of a server.

FIG. 5 is a view showing exemplary attribute information generated and held with PDL data by the server.

FIG. 6 is a flowchart showing an operating process carried out in a case where data such as a document is received from a device (remote device) such as the information processing apparatus by the server.

FIG. 7 is a view useful in explaining how the image processing apparatus obtains PDL data from the server.

FIG. 8 is a flowchart showing a flow from start of PDL data obtainment to a printing process in the image forming apparatus.

DESCRIPTION OF THE EMBODIMENTS

The present invention will now be described in detail with reference to the drawings showing an embodiment thereof.

FIG. 1 is a diagram showing an exemplary information processing system according to an embodiment of the present invention.

In this information processing system, an image forming apparatus 101 and a server 102 are connected to each other via a network 103 (for example, a LAN (local-area network)) so that they can communicate with each other. The image forming apparatus 101 is, for example, a multifunctional peripheral having various functions such as a copy function, a print function, a facsimile function, and a network communication function. The server 102, which is an information processing apparatus such as a general computer, has nonvolatile storage devices such as a CPU, a RAM, a ROM, and a hard disk drive (HDD) so that a variety of data can be stored in these storage devices.

FIG. 2 is a block diagram schematically showing a hardware arrangement of the image forming apparatus 101 in FIG. 1.

The image forming apparatus 101 has a main controller 210, a NIC 230, an operating unit 240, a scanner unit 250, a printer unit 260, and a USB 270.

The main controller 210 is connected to the network 103 via the NIC 230. The main controller 210 has a CPU 211, an expansion I/F 212, a ROM 213, a RAM 214, an HDD 215, an NVRAM 216, an operating unit I/F 217, a scanner I/F 218, a printer I/F 219, and a USB I/F 220.

The CPU 211 executes software programs stored in the ROM 213 and the HDD 215 in the main controller 210 to control the overall operation of the image forming apparatus 101. The RAM 214, which is a random-access memory, is used to, for example, temporarily store data when the CPU 211 controls the image forming apparatus 101.

The ROM 213, which is a read-only memory, is used to, for example, store an apparatus boot program, fixed parameters, and so on. The HDD 215, which is a hard disk drive, is used to store a variety of data. The NVRAM 216, which is a nonvolatile memory, is used to store various setting values for the main controller 210.

The operating unit I/F (interface) 217 controls the operating unit 240 to display various operating screens on a liquid crystal panel provided in the operating unit 240, and transmits instructions input via the operating screens to the CPU 211. The scanner I/F 218 controls the scanner unit 250. The scanner unit 250 reads an image off an original to generate image data.

The printer I/F 219 controls the printer unit 260. The printer unit 260 prints images based on image data on recording media such as sheets. The USB_ I/F 220 controls the USB 270. The USB 270 recognizes an externally inserted nonvolatile USB memory and controls files systems in the USB memory in collaboration with the USB_ I/F 220 to recognize files and directories. The expansion I/F 212 is connected to the NIC 230 and controls data communication with external devices (for example, the server 102) on the network 103 via the NIC 230.

FIG. 3 is a block diagram schematically showing a software arrangement of the image forming apparatus 101. Blocks in FIG. 3 are software modules stored in the ROM 213 or the HDD 215 of the image forming apparatus 101 and executed by the CPU 211 of the image forming apparatus 101 to implement predetermined functions described hereafter.

In response to a data obtaining request received from an attribute analyzing/data obtaining instruction unit 303, a session management unit 304 generates a plurality of communication units (a communication unit 1_306, communication unit 2_307, . . . , communication unit N_308) and instructs each of the plurality of communication units to obtain PDL data or attribute information.

Upon receiving an instruction from the session management unit 304, the communication unit 1_306, communication unit 2_307, . . . , communication unit N_308 connect to the server 102 and obtain PDL data or attribute information. When obtained data is attribute information, the communication units pass it to the session management unit 304, and when obtained data is PDL data, the communication units pass it to an obtained data management unit 305.

The session management unit 304 issues instructions to, for example, connect and disconnect network sessions between the generated communication units and the server 102 and manage the network sessions. The session management unit 304 notifies the attribute analyzing/data obtaining instruction unit 303 of status information such as the start and end of obtainment of PDL data or attribute information and passes attribute information obtained from the communication units to the attribute analyzing/data obtaining instruction unit 303.

The obtained data management unit 305 manages PDL data obtained from the server 102. The obtained data management unit 305 receives PDL data obtained individually by the communication units and combines them together to generate PDL data for pages required for printing. The obtained data management unit 305 also passes generated PDL data to the attribute analyzing/data obtaining instruction unit 303.

The attribute analyzing/data obtaining instruction unit 303 obtains and analyzes PDL data and attribute information on the PDL data obtained from the server 102 by the obtained data management unit 305 and the session management unit 304. How these data are obtained and analyzed will be described later with reference to FIGS. 7 and 8. The attribute analyzing/data obtaining instruction unit 303 also obtains PDL data obtained from the server 102 from the obtained data management unit 305 and passes it to a PDL analyzing unit 302.

The PDL analyzing unit 302 analyzes PDL data passed from the attribute analyzing/data obtaining instruction unit 303, converts the PDL data into print data, and passes the print data to a print processing unit 301. Also, by, for example, sharing information by polling the PDL analyzing unit 302 from the attribute analyzing/data obtaining instruction unit 303 or providing the attribute analyzing/data obtaining instruction unit 303 with notification from the PDL analyzing unit 302 with specific timing, the PDL analyzing unit 302 shares the status of PDL data analysis with the attribute analyzing/data obtaining instruction unit 303. The print processing unit 301 performs printing of print data passed from the PDL analyzing unit 302.

FIG. 4 is a block diagram schematically showing a software arrangement of the server 102. Blocks in FIG. 4 are software modules stored in a ROM (or an HDD) in the server 102 and executed by a CPU in the server 102 to implement functions described hereafter.

A PDL data/attribute information generating unit 401 converts data such as a document passed from a remote PC (not shown) or a device (for example, the image forming apparatus 101) into PDL data. In the process of generating PDL data, the PDL data/attribute information generating unit 401 generates attribute information including information on offset positions indicative of where data required to generate individual pages are placed in PDL data. Further, the PDL data/attribute information generating unit 401 instructs a file system 403 to store generated PDL data and attribute information in the HDD.

A communication management unit 402 manages network connections with a remote PC or a device, and reference to and edition, and delivery of various data stored in the HDD. When a device or the like instructs the communication management unit 402 to convert data such as a document passed from the device or the like into PDL data, the communication management unit 402 reads data concerned from the HDD and passes it to the PDL data/attribute information generating unit 401.

Further, in response to an instruction to store PDL data or attribute data passed from a device or the like in a specific file path on the HDD, the communication management unit 402 instructs the file system 403 to store the received data in the HDD. Also, in response to a PDL data obtaining request and an attribute information obtaining request from a device or the like, the communication management unit 402 instructs the file system 403 to obtain data and reads data concerned from the HDD to meet the requests.

The file system 403 manages directories/files in the HDD, and based on file storing instructions and obtaining instructions from the PDL data/attribute information generating unit 401 and the communication management unit 402, processes real files in the HDD.

FIG. 5 is a view showing exemplary attribute information generated and held with PDL data by the server 102. In the example shown in the figure, attribute information on PDL data is described in XML, but the description format is not limited to XML.

In FIG. 5, reference numeral 501 denotes an ID of PDL data. This ID 501 is a value unique to each PDL data generated by the server 102.

Reference numeral 502 denotes tags indicative of page numbers in the PDL data. The tags 502 make distinctions among page numbers in the PDL data. In the tags 502, page-by-page information is included.

Reference numeral 503 denotes tags indicative of offsets in places constituting individual pages. The server 102 describes, in the tags 503, offset positions of data constituting individual pages. When there is a plurality of offset positions, the server 102 describes each of the offset positions.

Reference numeral 504 denotes a start position of an offset. Reference numeral 505 denotes an end position of an offset. Namely, an offset of data constituting a page starts with the value of the start position 504 and ends with the value of the end position 505. The server 102 describes positional information on the start position 504 and the end position 505 of the offset.

Reference numeral 506 denotes a value indicative of whether or not both side printing is to be performed. For example, “1” is set when both side printing is to be performed, and “0” is set when both side printing is not to be performed. It should be noted that when both side printing is to be performed, not one page but two pages are targeted for printing. For this reason, in both side printing, pages to be printed by the image forming apparatus 101 differ from those in normal printing. In order for the image forming apparatus 101 to efficiently perform printing, it is necessary to identify pages to be printed, and hence the server 102 further describes whether or not both side printing is to be performed in attribute information.

Reference numeral 507 denotes a print type such as 2-in-1 printing or 4-in-1 printing. In 2-in-1 printing or 4-in-in printing, the number of pages to be printed is not one but two or four. For this reason, in 2-in-1 printing or 4-in-1 printing, pages to be printed by the image forming apparatus 101 differ from those in normal printing. In order for the image forming apparatus 101 to efficiently perform printing, it is necessary to identify pages to be printed, and hence the server 102 further describes a print type such as 2-in-1 or 4-in-1 printing in attribute information.

Although in FIG. 5, a value denoted by reference numeral 507 is written taking 2-in-1 printing as an example, the value 507 assumes 4 for 4-in-1 printing.

It should be noted that for some PDL data, there is a description method in which two pages are combined into one page of PDL data in 2-in-1 printing, and four pages are combined into one page of PDL data for 4-in-1 printing. In this case, the number of pages required for the image forming apparatus 101 to efficiently perform printing is only one, and hence the server 102 describes the value 507 as 1 (1-in-1).

FIG. 6 is a flowchart showing an operating process carried out in a case where data such as a document is received from a device (remote device) such as the information processing apparatus 101 by the server 102. This process is implemented by the CPU in the server 102 reading a program from the HDD or the like and executing the same.

Referring to FIG. 6, when the server 102 receives data from the information processing apparatus 101 via the network 103, the CPU analyzes the received data (step S601) and determines whether it is non-PDL data such as a document or PDL data and attribute information (step S602).

The server 102 has a function of converting document data into PDL data, and for example, when the remote device that has transmitted document data is a remote PC, a printer driver in the remote PC may convert document data into PDL data in advance and send the PDL data to the server 102. In this case, conversion into PDL data and generation of attribute information are carried out by the printer driver in the remote PC. Accordingly, for the data received in the step S602, the server 102 determines whether or not to perform conversion into PDL data and generation of attribute information.

In the step S602, when it is determined that the received data is PDL data and attribute information, the process proceeds to step S608. On the other hand, when the CPU determines that the received data is non-PDL data such as a document, the CPU performs conversion of the received data to generate PDL data (step S603).

Next, in step S604, the CPU carries out a page analyzing process on the generated PDL data. In the page analyzing process, the CPU analyzes which offset positions in the PDL data include information on individual pages in the PDL data and checks start positions and end positions of offsets corresponding to the individual pages. Also, the CPU checks whether or not both side printing on the PDL data concerned is to be performed, as well as a print type such as 1-in-1, 2-in-1, or 4-in-1 printing.

As described above, for some PDL data, there is a description method in which two pages are combined into one page of PDL data for 2-in-1 printing, and four pages are combined into one page of PDL data for 4-in-1 printing. In this case, even 2-in-1 printing or 4-in-1 printing is treated as one (1-in-1) printing.

Then, in step S605, the CPU describes the start positions and end positions of the offsets for the individual pages checked in the page analyzing process in the step S604 and generates attribute information as shown in FIG. 5.

Then, in step S606, the CPU describes, in the generated attribute information, information indicative of whether both side printing is to be performed as checked in the page analyzing process in the step S604.

In step S607, the CPU describes, in the generated attribute information, the type information such as 1-in-1, 2-in-1, or 4-in-1 printing as checked in the page analyzing process in the step S604.

In the step S608, the CPU stores the generated PDL data and attribute information, or the received PDL data and attribute information in the HDD and terminates the process. It should be noted that the PDL data and the attribute information may be combined into one file data or may be separate file data.

FIG. 7 is a view useful in explaining how PDL data is obtained from the server 102 by the image processing apparatus 101.

In FIG. 7, reference numeral 701 denotes attribute information. The attribute analyzing/data obtaining instruction unit 303 of the image processing apparatus 101 requests the attribute information 701 from the server 102 using the communication unit 1_306 by way of the session management unit 304.

Upon receiving the attribute information request from the communication unit 1_306, the communication management unit 402 of the server 102 obtains attribute information 701 concerned from the HDD via the file system 403 and sends the obtained attribute information 701 to the image forming apparatus 101.

At the time of obtaining the attribute information 701, the session management unit 304 measures the time period elapsing from the start of obtainment to the completion of obtainment. Then, based on the size of the obtained attribute information 701 and the measured time period, the session management unit 304 calculates the obtainment time period required for obtainment per unit data size in one communication session and holds the calculated time period (this will hereafter be referred to as “the downloading time period”). The obtainment of the attribute information 701 and the measurement of the obtainment time period are performed at a stage prior to obtainment of PDL data.

The attribute analyzing/data obtaining instruction unit 303 shares, with the PDL analyzing unit 302, the progress of analysis on a page being currently analyzed by the PDL analyzing unit 302. At a stage where the PDL analyzing unit 302 is analyzing no PDL data or the progress of analysis is equal to or greater than a threshold value, the attribute analyzing/data obtaining instruction unit 303 performs an analysis on a page that should be analyzed next from obtained attribute information. Based on the result of the analysis, the attribute analyzing/data obtaining instruction unit 303 notifies the session management unit 304 of a start position and an end position of an offset on the page to be obtained next in PDL data and issues a PDL data obtaining request.

Based on the start position and the end position of the offset which the session management unit 304 has been notified of, the session management unit 304 calculates the total size of data on the page to be obtained next in the PDL data. Based on information such as the calculated total size of the data on the page to be obtained next and the downloading time period that is being held, the session management unit 304 determines the number of communication units that should be generated so as to obtain next data, that is, the number of sessions that should be connected to the server 102.

Then, for communication units corresponding in number to the determined number of sessions, the session management unit 304 determines start positions, end positions, and obtainment sizes of offsets of data to be obtained by the respective communication units and notifies the communication units of them while at the same time, requesting them to obtain PDL data. The start positions, end positions, and obtainment sizes of offsets determined here may be determined using a value obtained by dividing the total size of PDL data on the page to be obtained next by the number of sessions or with respect to each specific offset position. In response to the PDL obtaining request from the session management unit 304, the communication units request PDL data from the server 102 based on the start positions, end positions, and obtaining sizes of the offsets which they have been notified of.

In FIG. 7, reference numeral 703 denotes entire PDL data. Reference numeral 703 denotes data required for the main controller 210 of the image forming apparatus 101 to carry out the next printing process in the PDL data 702.

Upon receiving the PDL obtaining request from the image forming apparatus 101, the communication management unit 402 obtains the data 703 from starting positions to end positions of offsets required in respective ones of a plurality of sessions from the HDD via the file system 403. The communication management unit 403 sends the obtained data 703 to the communication units of the image forming apparatus 101.

Upon obtaining the PDL data 702, each of the communication units of the image forming apparatus 101 sends the obtained individual data 703 to the obtained data management unit 305. The obtained data management unit 305 combines the individual data obtained by the communication units and performs data management such as restoration and holding of the PDL data 702 in the obtained data management unit 305.

When individual data are obtained in parallel in the respective sessions, the order in which the sessions completes obtainment of the data is unknown. This is because the times at which obtainment of the data is completed vary depending on time periods which the CPU of the main controller 201 allocates to the respective sessions, the order in which the server 102 processes the sessions, and the effects of a network environment on the respective sessions.

Accordingly, the obtained data management unit 305 combines individual data passed in a random order each time any of the communication units completes data obtainment while controlling them in order using the starting positions, end positions, and obtainment sizes of the offsets for the respective sessions. When restoration of the individual data 703 obtained by the sessions is completed in the obtained data management unit 305, the attribute analyzing/data obtaining instruction unit 303 passes the restored PDL data 702 to the PDL analyzing unit 302, so that a printing process is performed.

FIG. 8 is a flowchart showing a flow from the start of obtainment of the PDL data 702 to a printing process in the image forming apparatus 101. This process is actually implemented by the CPU 211 in the image forming apparatus 101 reading a program from the HDD 215 or the like and executing the same, but here, a description thereof is given using the functional blocks appearing in FIG. 3.

In step S801, the attribute analyzing/data obtaining instruction unit 303 obtains attribute information on the PDL data 702 to be printed from the server 102 using the communication unit 1_306 by way of the session management unit 304. The session management unit 303 calculates and holds the downloading time period described above (step S801).

In step S802, the attribute analyzing/data obtaining instruction unit 303 analyzes a page to be printed next from the obtained attribute information. At this time, the attribute analyzing/data obtaining instruction unit 303 obtains, for example, the values 506 and 507 in the attribute information shown in FIG. 5 and determines a page number of a page that should be obtained next from the server 102.

Then, the attribute analyzing/data obtaining instruction unit 303 obtains from the attribute information a start position and an end position of an offset in the PDL data 702 concerned with the determined page number. The attribute analyzing/data obtaining instruction unit 303 then notifies the session management unit 304 of the start position 504 and the end position 505 of the offset in the PDL data 702 to be obtained next to request the session management unit 304 to obtain PDL data (step S802).

In step S803, based on the start position 504 and the end position 505 of the offset which the session management unit 304 has been notified of, the session management unit 304 calculates the total size of the data 703 to be obtained next in the PDL data 702. The session management unit 304 also determines the number of communication units that should be generated so as to obtain PDL data next, that is, the number of network sessions that should connected to the server 102. The number of sessions is determined based on the total size of the PDL data 702 to be obtained next, the downloading time period that is being held, and the time period elapsing before the obtained data management unit 305 restores the PDL data 702. The time period elapsing from the time when obtainment of the PDL data 702 to be obtained next is started to when the obtained PDL data 702 is passed to the PDL analyzing unit 302 is given by the expression, the PDL data obtainment time period+the PDL data restoration time period.

The PDL data obtainment time period is calculated based on the downloading time period and the total size of the PDL data 702 as well as the number of sessions. Basically, the greater the number of sessions, the shorter the PDL data obtainment time period.

On the other hand, basically, the greater the number of sessions, the longer the PDL data restoration time period. This is because as the number of sessions increases, the number of individual data 702 obtained by respective sessions increases, and accordingly, the time period required for the obtained data management unit 305 to combine the data 703 and restore the PDL data 702 increases.

Since the PDL data obtainment time period decreases and the PDL data restoration time period increases as the number of sessions is increased, the session management unit 304 determines or changes the number of sessions so that the value of the PDL data obtainment time period+the PDL data restoration time period can be minimized.

Further, for communication units corresponding in number to the determined number of sessions, the session management unit 304 determines start positions and end positions and obtainment sizes of offsets in data to be obtained by the respective communication units and notifies the communication units of them while at the same time, requesting the communication units to obtain PDL data.

In step S804, in response to the PDL data obtaining request received from the session management unit 304, the communication units obtain individual data from the server 102 based on the start positions, end positions, and obtainment sizes of offsets which the communication units have been notified of.

In step S805, the communication units obtain the individual data 703 from the server 102 and sends the obtained individual data 703 to the obtained data management unit 305. The obtained data management unit 305 combines the individual data 703 obtained by the respective sessions together and restores the PDL data 702 on the page to be printed.

In step S806, the attribute analyzing/data obtaining instruction unit 303 obtains the restored PDL data 702 from the obtained data management unit 305 and passes the same to the PDL analyzing unit 302. The PDL analyzing unit 302 analyzes the received PDL data 702 and converts the same into print data. The PDL analyzing unit 302 passes the print data obtained as a result of the conversion to the print processing unit 301. The print processing unit 301 performs a printing process based on the received print data.

In step S807, the attribute analyzing/data obtaining instruction unit 303 shares with the PDL analyzing unit 302 the progress of analysis on a page being currently analyzed by the PDL analyzing unit 302.

In step S808, based on the result of the analysis in the step S807, the attribute analyzing/data obtaining instruction unit 303 determines whether or not among all the pages described in the attribute information, there is any page that has not yet been obtained from the server 102. When it is determined that there is no page that has not yet been obtained, the process is terminated because all the pages have been completely obtained. On the other hand, when it is determined that there are any pages have not yet been obtained, the process proceeds to step S809.

In the step S809, the attribute analyzing/data obtaining instruction unit 303 compares the progress of analysis on the page in the step S807 with a next-page obtainment starting threshold value determined in advance. This means that depending on whether or not the progress of PDL data analysis on a page has reached the progress determined in advance, it is determined whether or not to obtain PDL data on the next page from the server 102. When the progress of PDL data analysis is smaller than the next-page obtainment starting threshold value, not only PDL data obtained next will merely be spooled but also the load on the CPU will be increased due to obtainment of PDL data on the next page, slowing down the current analysis on the PDL data and printing process.

To avoid this, the attribute analyzing/data obtaining instruction unit 303 determines whether or not to obtain PDL data on the next page from the server 102. When the progress of PDL data analysis has equal to or greater than the next-page obtainment starting threshold value (the progress the next-page obtainment starting threshold value), the process returns to the step S802 so that the attribute analyzing/data obtaining instruction unit 303 can obtain PDL data on the next page from the server 102, and the attribute analyzing/data obtaining instruction unit 303 starts obtainment from the next obtainment position.

On the other hand, when the progress of PDL data analysis is smaller than the next-page obtainment starting threshold value (the progress<the next-page obtainment starting threshold value), the attribute analyzing/data obtaining instruction unit 303 suspends obtainment of PDL data on the next page to be printed from the server 102 and waits for a predetermined waiting time period (step S810). After a lapse of the waiting time period, the attribute analyzing/data obtaining instruction unit 303 carries out the processes in the step S807 and the subsequent steps again.

According to the embodiment described above, the image forming apparatus determines the number of network sessions based on the time period it took to obtain attribute information from the server, the size of data on a page to be printed in print data to be obtained from the server, and the restoration time period required to combine and restore obtained data. The image forming apparatus then obtains, from the server, data on the page to be printed using network sessions corresponding in number to the determined number of network sessions. This makes it possible to efficiently obtain print data and perform printing without obtaining unnecessary print data from the server on the network with useless timing and continuously spooling it.

OTHER EMBODIMENTS

Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.

While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.

This application claims the benefit of Japanese Patent Application No. 2013-238770 filed Nov. 19, 2013, which is hereby incorporated by reference herein in its entirety. 

What is claimed is:
 1. An information processing system comprising: a server configured to store print data; and an image forming apparatus configured to obtain the print data in parallel using a plurality of network sessions for said server, wherein said server comprises an attribute information generation unit configured to generate attribute information including positional information on individual pages of the print data, and wherein said image forming apparatus comprises: an attribute information obtaining unit configured to obtain the attribute information from said server; a determination unit configured to determine the number of network sessions based on a time period it took for the attribute information obtaining unit to obtain the attribute information, a size of data on a page to be printed in print data to be obtained from said server, and a restoration time period required to combine and restore the obtained data on the page to be printed; and a data obtaining unit configured to obtain the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined by the determination unit.
 2. The information processing system according to claim 1, wherein in obtaining the attribute information, the attribute information obtaining unit measures a time period elapsing from start to completion of the obtainment of the attribute information, and based on the measured time period and a size of the attribute information, calculates a time period required for obtainment per unit data size and regards the calculated time period as the obtainment time period it took to obtain the attribute information.
 3. The information processing system according to claim 1, wherein the positional information includes at least start positions and end positions of data constituting the individual pages of the print data.
 4. The information processing system according to claim 1, wherein based on the positional information included in the obtained attribute information, the determination unit calculates a total size of data on the page to be printed which is to be obtained next in the print data stored in said server, and based on the calculated total size, the obtainment time period it took to obtain the attribute information, and a restoration time period required to combine and restore data per unit data size, changes the number of network sessions so that the number of network sessions can be minimum.
 5. The information processing system according to claim 1, wherein based on the positional information included in the obtained attribute information, the determination unit calculates a total size of data to be obtained next and data to be obtained after next in the print data stored in said server, and based on the calculated total size, the obtainment time period it took to obtain the attribute information, and the restoration time period, changes the number of network sessions so that the number of network sessions can be minimum.
 6. The information processing system according to claim 1, wherein at a time when a progress of a printing process being performed by said image forming apparatus has become greater than a specific threshold value, the data obtaining unit starts obtaining the data on the page to be printed from an obtainment position for the page to be printed which is to be obtained next in the print data stored in said server, and while the progress of the printing process is equal to or smaller than the specific threshold value, the data obtaining unit suspends obtainment of the data on the page to be printed which is to be obtained next.
 7. The information processing system according to claim 1, wherein the attribute information generation unit generates the attribute information based on the positional information and a print type of the print data.
 8. A control method for an information processing system having a server that stores print data, and an image forming apparatus that obtains the print data in parallel using a plurality of network sessions for the server, comprising: an attribute information generation step in which the server generates attribute information including positional information on individual pages of the print data, an attribute information obtaining step in which the image forming apparatus obtains the attribute information from the server; a determination step in which the image forming apparatus determines the number of network sessions based on a time period it took to obtain the attribute information in said attribute information obtaining step, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed; and a data obtaining unit step in which the image forming apparatus obtains the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined in said determination step.
 9. A non-transitory computer-readable storage medium storing a program for causing a computer to execute a control method for an information processing system having a server that stores print data, and an image forming apparatus that obtains the print data in parallel using a plurality of network sessions for the server, the control method comprising: an attribute information generation step in which the server generates attribute information including positional information on individual pages of the print data, an attribute information obtaining step in which the image forming apparatus obtains the attribute information from the server; a determination step in which the image forming apparatus determines the number of network sessions based on a time period it took to obtain the attribute information in the attribute information obtaining step, a size of data on a page to be printed in print data to be obtained from the server, and a restoration time period required to combine and restore the obtained data on the page to be printed; and a data obtaining unit step in which the image forming apparatus obtains the data on the page to be printed using network sessions corresponding in number to the number of network sessions determined in the determination step. 